package com.joyintech.feign;


import com.joyintech.config.FeignConfig;
import com.joyintech.vo.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 理财
 */
@FeignClient(name = "fxjx-batch", configuration = FeignConfig.class)
public interface BatchService {

    /**
     * 查询单条标准组合
     */
    @PostMapping(value = "/fxjx-batch/decipher/verify", produces = "application/json;charset=UTF-8")
    String verify(@RequestBody TokenVo vo);

    /**
     * 初始化
     */
    @PostMapping(value = "/fxjx-batch/cc/init", produces = "application/json;charset=UTF-8")
    String init(@RequestBody InitVo vo);

    /**
     * 获取总资产和四个锦囊数据
     */
    @PostMapping(value = "/fxjx-batch/cc/summaryQuery", produces = "application/json;charset=UTF-8")
    String summaryQuery(@RequestBody com.joyintech.vo.summaryQuery.Request vo);

    /**
     * 获取推荐产品
     */
    @PostMapping(value = "/fxjx-batch/portal/getProdById", produces = "application/json;charset=UTF-8")
    String getProdById(@RequestBody GetProdByIdVo vo);

    /**
     * 获取推荐的保障类产品
     */
    @PostMapping(value = "/fxjx-batch/portal/commandProd", produces = "application/json;charset=UTF-8")
    String commandProd(@RequestBody CommandProdVo vo);

    /**
     * 获取精选产品
     */
    @PostMapping(value = "/fxjx-batch/portal/notionalH5", produces = "application/json;charset=UTF-8")
    String notionalH5( @RequestBody Map<String,Object> map);

    @PostMapping(value = "/fxjx-batch/limitmanage/getDict", produces = "application/json;charset=UTF-8")
    String getDict( @RequestBody List<String> dicts);

    @PostMapping(value = "/fxjx-batch/limitmanage/mstNewsSelect", produces = "application/json;charset=UTF-8")
    String mstNewsSelect( );

    @PostMapping(value = "/fxjx-batch/limitmanage/dwdAstPlanGetId", produces = "application/json;charset=UTF-8")
    String dwdAstPlanGetId(@RequestBody ManagementVo vo );

    @PostMapping(value = "/fxjx-batch/limitmanage/reading", produces = "application/json;charset=UTF-8")
    String reading( );
//
//    @PostMapping(value = "/fxjx-batch/limitmanage/selectPortfolioManagement", produces = "application/json;charset=UTF-8")
//    String selectPortfolioManagement( @RequestBody PortfolioManagementNewVo vo);

    @PostMapping(value = "/fxjx-batch/limitmanage/investmentSave", produces = "application/json;charset=UTF-8")
    String investmentSave( @RequestBody CustomerInvestmentProfileVo vo);

    @PostMapping(value = "/fxjx-batch/limitmanage/investmentSelectById", produces = "application/json;charset=UTF-8")
    String investmentSelectById( @RequestBody String id);

    @PostMapping(value = "/fxjx-batch/limitmanage/investmentList", produces = "application/json;charset=UTF-8")
    String investmentList( @RequestBody CustomerInvestmentProfileVo vo);

    @PostMapping(value = "/fxjx-batch/limitmanage/investmentRemoveById", produces = "application/json;charset=UTF-8")
    String investmentRemoveById( @RequestBody String id);

//
//    @PostMapping(value = "/fxjx-batch/limitmanage/selectList", produces = "application/json;charset=UTF-8")
//    String astPlanSelectList(@RequestBody DwdAstPlanManagementPageVo vo);

    @PostMapping(value = "/fxjx-batch/limitmanage/scoringQueryPage", produces = "application/json;charset=UTF-8")
    String scoringQueryPage(@RequestBody DwdAstPlanManagementPageVo vo);

    @PostMapping(value = "/fxjx-batch/cc/fundHold", produces = "application/json;charset=UTF-8")
    String fundHold(@RequestBody com.joyintech.vo.fundHold.Request vo);

    @PostMapping(value = "/fxjx-batch/cc/fcPosInq", produces = "application/json;charset=UTF-8")
    String fcPosInq(@RequestBody com.joyintech.vo.fcPosInq.Request vo);

    @PostMapping(value = "/fxjx-batch/cc/position", produces = "application/json;charset=UTF-8")
    String position(@RequestBody com.joyintech.vo.preciousMetal03.Request vo);

    @PostMapping(value = "/fxjx-batch/cc/policyInquiry", produces = "application/json;charset=UTF-8")
    String policyInquiry(@RequestBody com.joyintech.vo.policyInquiry.Request vo);

    @PostMapping(value = "/fxjx-batch/cc/fundHoldAm", produces = "application/json;charset=UTF-8")
    String fundHoldAm(@RequestBody com.joyintech.vo.fundHold.Request vo);

    @PostMapping(value = "/fxjx-batch/cc/overviewOfWealth", produces = "application/json;charset=UTF-8")
    String overviewOfWealth(@RequestBody com.joyintech.vo.overviewOfWealth.Request vo);

    @PostMapping(value = "/fxjx-batch/cc/fundZlCc", produces = "application/json;charset=UTF-8")
    String fundZlCc(@RequestBody com.joyintech.vo.fundZlCc.Request vo);

    /**
     * python调用
     *
     * @param map
     * @return
     */
    @PostMapping(value = "/fxjx-batch/portal/getPyResult", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    String getPyResult(@RequestBody Map<String,Object> map);
}

